#include <stdio.h>
#include <string.h>
#define BUFFER_SIZE 7

int romanToInt(char* s) //字符已经输入
{
    if (s == NULL) //判空
    {
        perror("s is null");
        exit(-1);
    }

    int size = strlen(s); //获取字符串长度，第一次时我用了int size =
                          //sizeof(s)--错误，字符串长度strlen,非字符数组
    int num = 0;
    int nums[size];
    int num1 = 0;

    // 将罗马数字字符转换为整数值并存入数组
    for (int idx = 0; idx < size; idx++) {
        switch (s[idx]) {
        case 'I':
            num = 1;
            break;

        case 'V':
            num = 5;
            break;

        case 'X':
            num = 10;
            break;

        case 'L':
            num = 50;
            break;

        case 'C':
            num = 100;
            break;

        case 'D':
            num = 500;
            break;

        case 'M':
            num = 1000;
            break;

        //如果传入的字符串包含非罗马数字字符
        default:
            perror("Invalid Roman numeral character");
            return 0; // 返回0或错误代码
        }

        nums[idx] = num;
    }

    for (int idx = 0; idx < size; idx++) {
        // if(nums[idx] == nums[idx+1] )
        // {
        //     num1 += nums[idx];
        // }

        if (idx + 1 < size && nums[idx] < nums[idx + 1])
            num1 -= nums[idx];

        else
            // else if(nums[idx] >= nums[idx+1])这样存在越界问题
            num1 += nums[idx];
    }

    return num1;
}